
package com.fire.eyes.service;

import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.fire.core.util.AjaxResult;
import com.fire.eyes.model.SiteModel;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.baomidou.mybatisplus.plugins.Page;
import com.fire.eyes.validation.SiteFixDTO;

import java.util.List;
import java.util.Map;


/**
 * 站点Service
 *
 * @author Matthew
 * @Date 2019-01-17 20:50
 */
public interface ISiteService extends IService<SiteModel> {

	/**
	 * 根据 model 条件，查询一条记录
	 * @param model 实体对象 非空
	 * @return SiteModel
	 */
	SiteModel selectOne(SiteModel model);

	/**
	 * 根据 entity 条件，查询全部记录
	 * @param model 实体对象封装操作类（可以为 null）
	 * @return List<SiteModel>
	 */
	List<SiteModel> selectList(SiteModel model);

	/**
	 * 根据 Wrapper 条件，分页查询记录
	 * @param currentPage 当前页码
	 * @param pageSize 每页条数
	 * @param wrapper 条件
	 */
	Page<SiteModel> selectPage(int currentPage, int pageSize, Wrapper<SiteModel> wrapper);

	/**
	 * 根据 Wrapper 条件，分页查询Map记录
	 * @param currentPage 当前页码
	 * @param pageSize 每页条数
	 * @param wrapper 条件
	 */
	Page<Map<String, Object>> selectMapsPage(int currentPage, int pageSize, Wrapper<SiteModel> wrapper);

	/**
	 * 查询站点详情
	 * @param siteId 站点ID
	 * @return
	 */
	Map querySiteDetail(String siteId);

	/**
	 * 查询站点列表（分页）
	 * @param page 分页类
	 * @param column 查询列
	 * @param columbValue 查询参数
	 * @return
	 */
	Page<Map<String,Object>> querySiteList(Page<Map<String,Object>> page, String column, String columbValue);

	/**
	 * 我管理的维保公司（分页）
	 * @param page
	 * @param supervisorId
	 * @return
	 */
	Page<Map<String,Object>> queryMyMaitainorsList(Page<Map<String,Object>> page, String supervisorId);

	/**
	 * 我管理的业主单位（分页）
	 * @param page
	 * @param supervisorId
	 * @return
	 */
	Page<Map<String,Object>> queryMyProprietorsList(Page<Map<String,Object>> page, String supervisorId);

	AjaxResult siteFix(SiteFixDTO siteFixDTO);
}
